package com.tanjor.user.dubbo.impl.interfaces;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.tanjor.user.dubbo.dto.SysUserDTO;
import com.tanjor.user.dubbo.dto.SysUserRoleDTO;
import com.tanjor.common.datatable.PageReq;
import com.tanjor.common.datatable.PageResp;
import com.tanjor.common.exception.BusinessException;

/**
 * <p>
 *  dubbo服务类
 * </p>
 *
 * @author Liuwy
 * @since 2017-03-25
 */
public interface ISysUserDubbo {

	/**
	 * 根据条件分页查询,返回datatables表格数据
	 * @param pageReq
	 * @return
	 */
	public PageResp findPage(PageReq pageReq);
	
	/**
	 * 新增数据
	 * @param entityDTO
	 * @return Map<String,Object>
	 * @throws Exception
	 */
	public Map<String,Object> insert(SysUserDTO entityDTO) throws BusinessException;
	
	/**
	 * 根据主键修改记录
	 * @param entityDTO
	 * @return Map<String,Object>
	 * @throws Exception
	 */
	public Map<String,Object> update(SysUserDTO entityDTO) throws BusinessException;
	
	/**
	 * 根据主键删除记录
	 * @param id
	 * @throws Exception
	 */
	public void deleteById(Serializable id) throws BusinessException;
	
	/**
	 * 根据主键查找记录
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public SysUserDTO findById(Serializable id);
	
	/**
	 * 保存用户角色
	 * @param userId
	 * @param userRoleCodes
	 * @return
	 */
	public Map<String,Object> saveUserRole(String userId,String userRoleCodes) throws BusinessException;
	
	/**
	 * 登陆校验
	 * @param user
	 * @param password
	 * @return
	 */
	public Map<String,Object> login(String userNo, String password) throws BusinessException;
	
	/**
	 * 根据用户编号查找记录
	 * @param userId
	 * @return
	 */
	public List<SysUserRoleDTO> findByUserId(String userId);
	
}
